1. Field
Embodiments generally relate to deployment and invocation of scaled medical imaging applications in a public cloud data center.
2. Related Art
“Cloud computing” refers to the utilization of a set of shared computing resources, such as servers, which are typically consolidated in one or more data center locations. A cloud-based computing resource can be considered to execute or reside on a “cloud,” which may be an internal corporate network or the public Internet, for example. From the perspective of an application developer or corporate systems administrator, cloud computing enables the development and deployment of applications that exhibit scalability, meaning that resource utilization can be easily and dynamically increased without regard for the nature or location of the underlying infrastructure executing the applications or other services.
Public cloud providers are currently capable of providing nearly unlimited scalability of applications. Scalability, as it pertains to applications, means that several instances of an application may be started by a cloud management system as needed. If the number of users requesting an application increases, the number of instances of the application that are started by the cloud management system are increased as well. If the number of application users decreases, then the number of running application instances is decreased, and accordingly, the cost for operating the application will drop.
This dynamic provisioning of application instances is made possible by the underlying elasticity of the public cloud data center. In the dynamic provisioning process, the several running instances are not tied to the clients sending a request. Rather, the cloud management system allocates a running application instance to a client only for the duration of a single user request. The cloud management system typically allocates available application instances to clients using a Round Robin method.
When application instances are completely stateless, i.e., when the application instances can be quickly and easily configured “on the fly” such that access to an application is completely separate from the execution of the application, such a dynamic provisioning process can be sufficient for providing unlimited application scalability.
In conventional cloud computing systems, as in example embodiments, several applications may be maintained in the cloud data center. However, in contrast to example embodiments, a cloud management module in a conventional system may assign instances of the requested application in a Round Robin fashion, for example. In conventional systems, user data may be loaded into memory when the user is assigned an application instance. The next time the user requests the services of the same application, even when the user has maintained the same user session, there is no guarantee that the user will be assigned the same instance of the requested application. Before any further processing may be performed, this second assigned instance is required to re-load data needed by the user in order for the user to be able to utilize the application. In some types of applications, such as, for example, medical imaging applications, loading this data may require a noticeable amount of time and may in some circumstances render the application inoperable in the view of the user.